package com.atguigu.g_jdk8interface;

public class Demo1 {
    public static void main(String[] args) {
        //创建实现类对象
        Son son = new Son();
        son.function();
        son.function1();
        System.out.println("son.NUM = " + son.NUM);
        System.out.println("InterJDK8.NUM = " + InterJDK8.NUM);
        System.out.println("-----------------------------");
        //JDK8新增的默认方法 : 实现类对象调用
        son.defaultMethod();
        son.go();
        //JDK8新增的静态方法 : 只能用接口名调用
        InterJDK8.staticMethod();
        //son.staticMethod();
    }
}

interface InterJDK8{
    //只有自定义常量
    public static final int NUM = 10;

    //只有抽象方法
    public abstract void function();
    public abstract void function1();

    //新增默认方法
    public default void defaultMethod(){
        System.out.println("接口新增的默认方法 ! ");
    }

    //新增静态方法
    public static void staticMethod(){
        System.out.println("接口新增的静态方法 ! ");
    }
}

interface UncleWang{
    public default void go(){
        System.out.println("向东走!");
    }
}

interface UncleLi{
    public default void go(){
        System.out.println("向西走!");
    }
}

class Son implements InterJDK8,UncleWang,UncleLi{


    @Override
    public void function() {

    }

    @Override
    public void function1() {

    }

    @Override
    public void go() {
        System.out.println("哪也不去 ! ");
    }
}